Relational databases are known for the organization and storage of data. Relational databases are strongly typed during a database creation process and store repeated data in separate tables that are defined by a programmer. In a relational database (RDB) every instance of data has the same format as every other, and changing that format is generally difficult.
In contrast to relational databases, there are NoSQL (also referred to as “non SQL” or “non relational”) databases. A NoSQL database can provide a mechanism for the storage and retrieval of data that is modeled in terms other than the tabular relations used in relational databases.
In some aspects, data structures used by a NoSQL database (e.g. key-value, graph, or document) may differ from those used by default in relational databases, making some operations faster in NoSQL and others faster in relational databases. The particular suitability of a given NoSQL database for a particular use or application can depend on the problem that is being solved by using the NoSQL database. In some instances, the data structures used by noSQL databases may be viewed as being more flexible than the data structures used in relational database tables.
NoSQL databases are increasingly used in “big data” and real-time web applications. In some embodiments, NoSQL systems are also sometimes called “Not only SQL” to emphasize that they may support SQL-like query languages.
One type of NoSQL database is a document-oriented database or document store that is designed for the storing, retrieving, and managing of document-oriented information. The document-oriented information is also known as semi-structured data. It is noted that document-oriented databases are one of the main categories of NoSQL databases and the term “document-oriented database” has grown with the use of the term NoSQL itself.